<?php
class GeraXls
{
    public function __construct($arquivo)
    {
        header ( "Expires: Mon, 1 Apr 1974 05:00:00 GMT");
        header ( "Last-Modified: " . gmdate("D,d M YH:i:S") . " GMT" );
        header ( "Pragma: no-cache" );
        header ( "Content-type: application/octet-stream; name=".$arquivo.".xls");
        header ( "Content-Disposition: attachment; filename=".$arquivo.".xls");
        header ( "Content-Description: MID Gera excel" );
    }

    /**
     * Método Responsavel por gerar um arquivo xml
     * @access public
     * @param array $arrayXls Dados contendo o nome das colunas e seus valores
     * @param array $arrayTitulo Dados contendo os nome das colunas com os titulos
     * @param boolean $arrayTitulo true pega indices do array e trasforma para titulos das colunas
     * @param boolean $codificar informa se o sistema precisa ou nao codigicar os dados para utf8
     */
    public function geraXls($arrayXls,$arrayTitulo=null,$codificar=false)
    {
        if (is_array($arrayXls))
        {
            echo '<table border="1">';
            if(!empty($arrayXls))
            {
                if(is_array($arrayTitulo))
                {
                        if( isset( $arrayTitulo['titulo'] ) )
                        {
                            echo '<tr>';
                            $temp = count($arrayTitulo)-1;
                                echo '<td colspan='.$temp.'><center><b>';
                                echo $arrayTitulo['titulo'];
                                echo '</b></center></td>';
                            echo '</tr>';
                            unset($arrayTitulo['titulo']);
                        }
                        echo '<tr>';
                        foreach ($arrayTitulo as $valor)
                        {
                            echo '<td><center><b>';
                            echo $codificar ? mb_convert_encoding( mb_convert_case($valor, MB_CASE_UPPER, "UTF-8") , 'ISO-8859-1' , 'UTF-8') : $valor;
                            echo '</b></center></td>';
                        }
                        echo '</tr>';
                }

                if($arrayTitulo===true){
                    echo '<tr>';
                    for ($index = 0; $index == 0; $index++)
                    {
                        foreach ($arrayXls[$index] as $key => $valor)
                        {
                            echo '<td><center><b>';
                            echo $codificar ? mb_convert_encoding( mb_convert_case($key, MB_CASE_UPPER, "UTF-8") , 'ISO-8859-1' , 'UTF-8') : $key;
                            echo '</b></center></td>';
                        }
                    }
                    echo '</tr>';
                }
                
                foreach ($arrayXls as $key => $value)
                {
                    echo '<tr>';
                    foreach ($value as $key => $valor)
                    {
                        echo '<td>';
                        echo $codificar ? mb_convert_encoding( mb_convert_case($valor, MB_CASE_UPPER, "UTF-8") , 'ISO-8859-1' , 'UTF-8') : $valor;
                        echo '</td>';
                    }
                    echo '</tr>';
                }
            }
           
            echo '</table>';
        }
        else
        {
            return false;
        }
    }
}
